The Test Bus Imperative: Architectures That Support Automated Acceptance Testing
نویسنده
چکیده
A gile methods—more specifically, test-driven development practices 1 —have begun to raise the software industry's awareness of automated acceptance testing. We now recognize that armies of manual testers slogging through reams of tedious, manually executed test scripts, under schedule pressure at the end of a release, don't ensure quality. Many tools can be purchased to help testers write automatic scripts for testing the system through its user interface. Such tools act like robots programmed to behave like testers—they push buttons, select menu items, check boxes, enter data into fields, and inspect the screens. Unfortunately, testing through the UI is slow, opaque, and dangerous. One of my clients had to run over 10,000 acceptance tests, and running them through the UI took him several days using dozens of machines. Furthermore, the tests were written in a code-like language that made them difficult to understand. Over time, he lost track of what each test was trying to verify: all he knew was that all 10,000 tests had to pass. Even tiny changes to the UI caused dozens, if not hundreds, of tests to fail or become inoperable. In the end, he found it impossible to upgrade and improve his outmoded UI. Over a century ago, the telephone company solved a similar problem by designing telephone switches with built-in test access. Such access, called a test bus, eventually let the telephone company automatically test every phone line at night and fix failures and degradations long before subscribers learned about them. Software producers have started adopting a similar strategy, architecting their software systems with built-in test buses. They also use tools such as Fit and FitNesse (www.fitnesse. org) to specify their tests in a simple-to-understand specification language that business people can read. 2 However, setting up automated acceptance testing requires at least three major architectural separations. In a software system, a test bus is a set of APIs that provides convenient access to unit and acceptance tests. These tests specify system behavior—unit tests specify module behavior and acceptance tests specify feature behavior. A test bus's existence in a system means that the appropriate structures exist in the application to let tests access the modules and subsystems whose behavior and structure they're specifying. For example, writing tests that bypass the UI and exercise the underlying business rules requires an API that both the UI and tests can use to invoke those business rules. Moreover, that …
منابع مشابه
Putting a Motor on the Canoo WebTest Acceptance Testing Framework
User acceptance testing is finally getting the attention and tool support it deserves. It is imperative that acceptance tests follow the best practices and embody the critical success factors that have been established over the years for automated unit testing. However, it is often challenging for acceptance tests to be repeatable, readable, and maintainable due to the nature of the tests and t...
متن کاملAn automatic test case generator for evaluating implementation of access control policies
One of the main requirements for providing software security is the enforcement of access control policies which aim to protect resources of the system against unauthorized accesses. Any error in the implementation of such policies may lead to undesirable outcomes. For testing the implementation of access control policies, it is preferred to use automated methods which are faster and more relia...
متن کاملAutomating Expert-Defined Tests: A Suitable Approach for the Medical Device Industry?
Testing is frequently reported as a crucial stage in the software development process. With traditional approaches acceptance testing is the last stage of the process before release to customer. Acceptance Test Driven Development (ATDD) promotes the role of an expert customer in defining tests and uses tool support to automate and execute these tests. Here the challenge is to support such an ex...
متن کاملCAS-BUS: A Test Access Mechanism and a Toolbox Environment for Core-Based System Chip Testing
As System on a Chip (SoC) testing faces new challenges, some new test architectures must be developed. This paper describes a Test Access Mechanism (TAM) named CASBUS that solves some of the new problems the test industry has to deal with. This TAM is scalable, flexible and dynamically reconfigurable. The CAS-BUS architecture is compatible with the IEEE P1500 standard proposal in its current st...
متن کاملCosts and Benefits of Automated Usability Testing
Usability testing is imperative because users are getting more critical about their needs of software as they are given more choice in the field. The variety of usability evaluation methods made available help designers and developers decide which is appropriate for their product or service at the stage of development they are at. The availability of such manual methods is not enough as these a...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- IEEE Software
دوره 22 شماره
صفحات -
تاریخ انتشار 2005